﻿
namespace SistemaLogistica.Business.Logic
{
    using System;
    using System.Collections.Generic;
    using SistemaLogistica.Business.Entities;
    using SistemaLogistica.DataAccess;

    public class OrdenCompraManager
    {
        private OrdenCompraManager() { }

        private static readonly OrdenCompraManager instancia = new OrdenCompraManager();

        public static OrdenCompraManager Instancia
        {
            get { return instancia; }
        }

        public List<OrdenCompra> Listar()
        {
            try
            {
                return OrdenCompraData.Instancia.Listar();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<OrdenCompra> BuscarPorFechas(DateTime desde, DateTime hasta)
        {
            try
            {
                return OrdenCompraData.Instancia.BuscarPorFechas(desde, hasta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public OrdenCompra ObtenerPorID(int ordenCompraID)
        {
            try
            {
                return OrdenCompraData.Instancia.ObtenerPorID(ordenCompraID);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Registrar(OrdenCompra ordenCompra)
        {
            try
            {
                OrdenCompraData.Instancia.Registrar(ordenCompra);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Actualizar(OrdenCompra ordenCompra)
        {
            try
            {
                OrdenCompraData.Instancia.Actualizar(ordenCompra);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Eliminar(int idOrdenCompra)
        {
            try
            {
                OrdenCompraData.Instancia.Eliminar(idOrdenCompra);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<int> ListarIDPorProveedor(int idProveedor)
        {
            try
            {
                return OrdenCompraData.Instancia.ListarIDPorProveedor(idProveedor);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
